lexer grammar XMLLexer;

options {
  language = Java;
}

@header {
    package practica9;
}

@members {
     
     private ArrayList<RecognitionException> errors = new ArrayList<RecognitionException>();
     public ArrayList<RecognitionException> getErrors() {
        return errors;
     }
     @Override
     public void reportError (RecognitionException e) {
        String msg = getErrorMessage(e, getTokenNames());
        System.err.println(msg);
        errors.add(e);
     }
 
}

BLANCO: (' '|'\t'|'\r\n'|'\n') {skip();};
fragment DIGITO: '0'..'9';
fragment LETRA: 'a'..'z'|'A'..'Z';
NUMERO: (DIGITO)+('.'(DIGITO)*)?;
IDENT: LETRA(LETRA|DIGITO)*;
TEXTO: (IDENT|' '|'.')*;
ABRIR_ANGULO: '<';
ABRIR_ANGULO_FIN: '</';
CERRAR_ANGULO: '>';

COMENTARIO: '<!--' (options {greedy=false;}:.)* '-->' {skip();};
